home *** CD-ROM | disk | FTP | other *** search
/ Super Shareware Collection / Super Shareware Collection.iso / os_2 / clisp.zip / DEFSEQ.LSP < prev    next >
Text File  |  1994-02-05  |  2KB  |  112 lines

  1. ;; Definitionen der Standard-Sequence-Typen
  2. ;; (in Verbindung mit SEQUENCE.Q)
  3. ;; Bruno Haible 9.7.1989, 1.8.1989, 2.8.1989
  4.  
  5. (in-package "SYSTEM")
  6.  
  7. (%defseq
  8.   (vector
  9.     'LIST
  10.     #'identity
  11.     #'list-upd
  12.     #'list-endtest
  13.     #'list-fe-init
  14.     #'list-upd
  15.     #'list-endtest
  16.     #'list-access
  17.     #'list-access-set
  18.     #'identity
  19.     #'list-llength
  20.     #'make-list
  21.     #'list-elt
  22.     #'list-set-elt
  23.     #'list-init-start
  24.     #'list-fe-init-end
  25. ) )
  26.  
  27. (%defseq ; VECTOR steht für GENERAL-VECTOR
  28.   (vector
  29.     'VECTOR
  30.     #'vector-init
  31.     #'vector-upd
  32.     #'vector-endtest
  33.     #'vector-fe-init
  34.     #'vector-fe-upd
  35.     #'vector-fe-endtest
  36.     #'aref
  37.     #'sys::store
  38.     #'identity
  39.     #'vector-length
  40.     #'make-array
  41.     #'aref
  42.     #'sys::store
  43.     #'vector-init-start
  44.     #'vector-fe-init-end
  45. ) )
  46.  
  47. (%defseq
  48.   (vector
  49.     'STRING
  50.     #'vector-init
  51.     #'vector-upd
  52.     #'vector-endtest
  53.     #'vector-fe-init
  54.     #'vector-fe-upd
  55.     #'vector-fe-endtest
  56.     #'char
  57.     #'sys::store
  58.     #'identity
  59.     #'vector-length
  60.     #'make-string
  61.     #'char
  62.     #'sys::store
  63.     #'vector-init-start
  64.     #'vector-fe-init-end
  65. ) )
  66.  
  67. (%defseq
  68.   (vector
  69.     'BIT-VECTOR
  70.     #'vector-init
  71.     #'vector-upd
  72.     #'vector-endtest
  73.     #'vector-fe-init
  74.     #'vector-fe-upd
  75.     #'vector-fe-endtest
  76.     #'bit
  77.     #'sys::store
  78.     #'identity
  79.     #'vector-length
  80.     #'make-bit-vector
  81.     #'bit
  82.     #'sys::store
  83.     #'vector-init-start
  84.     #'vector-fe-init-end
  85. ) )
  86.  
  87. #-CLISP1
  88. (mapc
  89.   #'(lambda (n &aux (eltype (list 'UNSIGNED-BYTE n)))
  90.       (%defseq
  91.         (vector
  92.           n ; n steht für `(VECTOR (UNSIGNED-BYTE ,n))
  93.           #'vector-init
  94.           #'vector-upd
  95.           #'vector-endtest
  96.           #'vector-fe-init
  97.           #'vector-fe-upd
  98.           #'vector-fe-endtest
  99.           #'aref
  100.           #'sys::store
  101.           #'identity
  102.           #'vector-length
  103.           #'(lambda (length) (make-array length :element-type eltype))
  104.           #'aref
  105.           #'sys::store
  106.           #'vector-init-start
  107.           #'vector-fe-init-end
  108.     ) ) )
  109.   '(1 2 4 8 16 32)
  110. )
  111.  
  112.